import request from '@/utils/request'
import { getNoUndefinedString } from '@/utils/utils'
import { stringify } from 'qs'

/**
 * 部门列表 当前管理员权限
 */
export async function listDep() {
  return request('/dept/findDetpList')
}

/**
 * 所有部门
 */
export async function getAllDep() {
  return request('/dept/findDetpListAll')
}

/**
 *  新增/编辑 部门信息
 * @param {*} params
 */
export async function editDep(params) {
  const url = params.id ? '/dept/updateDept' : '/dept/createDept'
  return request(url, {
    method: 'POST',
    data: {
      ...params,
    },
  })
}

/**
 * 删除部门 根据id 而不是pid
 * @param {*} params
 */
export async function deleteDep(params) {
  return request('/dept/deleteDept', {
    method: 'POST',
    data: params,
  })
}

/**
 * 根据id查询部门
 * @param {*} params
 */
export async function getDep(params) {
  return request('/dept/findDetpById', {
    method: 'POST',
    data: {
      id: params.id,
    },
  })
}

// 获取组织信息
export async function getOrg(params) {
  return request(`/organization/get/${getNoUndefinedString(params.id)}`)
}

// 加载组织列表
export async function listOrg(params) {
  return request(`/organization/list/${getNoUndefinedString(params)}`)
}
// 根据属性加载组织列表
export async function listOrgByAttr(params) {
  return request(`/organization/listOrgByAttr/?${stringify(params)}`)
}
// 排序组织信息
export async function sortOrg(params) {
  return request('/organization/sort', {
    method: 'POST',
    data: params,
  })
}
// 新增/编辑组织信息
export async function editOrg(params) {
  return request('/organization/edit', {
    method: 'POST',
    data: {
      ...params,
    },
  })
}
// 切换可用状态
export async function switchStatus(params) {
  return request('/organization/switchStatus', {
    method: 'POST',
    data: {
      ...params,
    },
  })
}
// 根据ID删除组织
export async function deleteOrg(params) {
  return request('/organization/del', {
    method: 'POST',
    data: {
      ...params,
    },
  })
}
// 校验path唯一性
export async function checkUnique(params) {
  return request('/organization/checkUnique', {
    method: 'POST',
    data: {
      ...params,
    },
  })
}
